01-Echarts折线图基本实现、最大值、最小值、堆叠折线图等等

本文介绍如何使用Echarts绘制折线图,并展示各种实用功能,包括最大值、最小值和平均值标记、平滑线条、填充效果、边界处理、比例调整及堆叠折线图等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Echarts折线图基本实现

特点

折线图常用来分析数据随时间的变化趋势

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./echarts.min.js"></script>
</head>
<body>
    <div id="main" style="width: 600px;height:400px;"></div>
</body>
<script>
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: 'ECharts 入门示例'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        type:'category',
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
    },
    yAxis: {
        type:'value'
    },
    series: [{
        name: '销量',
        type: 'line',
        data: [5, 20, 36, 10, 10, 20]
    }]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</html>

最大值、最小值、平均值、标注区间显示

都是写在series中

 series: [
        {
        name: '销量',
        type: 'line',
        data: [5, 20, 36, 10, 10, 20],
        markPoint: {
            data:[
                {
                    type:'max' //最大值
                },
                {
                    type:'min' //最小值
                }
            ]
        },
        markLine:{
            data:[
                {
                    type:'average' //平均值
                }
            ]
        },
        markArea:{ //标注区间 x轴衬衫-到雪纺衫有阴影
            data:[
                [
                {
                    xAxis:'衬衫'
                },
                {
                    xAxis:'雪纺衫'
                }
            ]
            ]
        }
    }
]

在这里插入图片描述

折线线条平滑效果、风格、填充效果

 		smooth:true, //线条平滑 风格
        lineStyle:{
            color:'green',
            type:'dashed' //dotted solid
        },
        areaStyle:{ //填充风格
            color:'red'
        } //填充

在这里插入图片描述

紧挨边缘

xAxis:中设置 boundaryGap:false

  xAxis: {
        type:'category',
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],
        boundaryGap:false, //紧挨边缘
    },

在这里插入图片描述

脱离0值比例

**使用在数值离0都比较远并且数值都相差不多
在yAxis中加scale:true **

  yAxis: {
        type:'value',
        scale:true //脱离0值比例  离0远值都相差不多
    },
series: [
        {
        name: '销量',
        type: 'line',
        data: [1000, 1005, 1100, 1050, 1200, 980],
        stack:'all', //堆叠图
        areaStyle:{}
        }
        ]

未脱离0值比例
在这里插入图片描述
脱离0值比例显示更明显
在这里插入图片描述

堆叠折线图

在series中再创建一个对象,在对象中加stack:'all’是为了不让两条折线交叉,不然显得杂乱无章

series: [
        {
        name: '销量',
        type: 'line',
        data: [5, 20, 36, 10, 10, 20],
        stack:'all', //堆叠图
        areaStyle:{}  //填充效果 有默认颜色
        },
         {
        name: '销量',
        type: 'line',
        data: [30, 50, 10, 6, 5, 30],
        stack:'all',
        areaStyle:{
            color:'green'
        }
    }
        ]
        

在这里插入图片描述
更多配置请去Echarts官网学习
Echarts官网:请点击

<think>我们正在讨论ECharts折线图坐标轴起始值设置为数据最小值的问题。根据用户需求,希望折线图的坐标轴(特别是y轴)的起始值从数据的最小值开始,而不是默认的0(如果数据都是正数)或自动计算的范围。在ECharts中,我们可以通过设置y轴(yAxis)的min属性来实现。min属性可以设置为一个具体的数值,也可以设置为'dataMin',表示使用数据的最小值作为坐标轴的最小值。但是,用户特别要求“起始值从数据中的最小值”开始,所以我们可以设置min:'dataMin'。这样,y轴的最小值就是数据的最小值了。另外,注意x轴也可能需要调整,但用户没有特别提及x轴,所以这里主要关注y轴。参考ECharts官方文档:yAxis.min可以设置为特殊值'dataMin',表示取数据最小值在该轴上的值。下面是一个示例配置:```javascriptoption= {xAxis:{type:'category',data:['Mon', 'Tue','Wed', 'Thu','Fri', 'Sat','Sun']},yAxis: {type: 'value',min: 'dataMin'//设置y轴最小值为数据最小值},series: [{data:[820,932,901,934,1290,1330,1320],type: 'line'}] };```在这个例子中,y轴的最小值会自动调整为数据中的最小值(即820)。但是,如果数据有波动,最小值可能不是820,而是整个系列中的最小值。注意:如果数据中有多个系列,那么'dataMin'会取所有系列在该轴上的最小值。如果只想考虑当前系列,可能需要分别设置,但ECharts的min属性不支持按系列设置,所以通常取所有系列的最小值。另外,如果希望坐标轴从最小值开始,但结束值也根据数据调整,可以设置max为'dataMax',或者不设置max,让ECharts自动计算。如果用户希望坐标轴两端留出一些空间,可以使用boundaryGap属性,但boundaryGap主要用于类目轴(category)。对于数值轴,我们可以通过设置minmax来调整,或者使用axisLabel.interval等属性。但是,用户要求从最小值开始,所以设置min:'dataMin'即可。如果数据中包含负数,那么设置min:'dataMin'同样有效,坐标轴会从数据中的最小负数值开始。另外,如果用户希望坐标轴不是严格从最小值开始,而是稍微扩展一点,可以使用minmax结合一个扩展比例(如设置min为最小值减去一个范围)来实现。但用户要求从最小值开始,所以不需要扩展。因此,解决方案是:在yAxis配置项中设置min:'dataMin'。下面是一个完整的示例,包括一个折线图,y轴从数据最小值开始: ```javascriptoption ={xAxis:{type:'category',data:['January', 'February','March', 'April','May', 'June','July']},yAxis: {type: 'value',min: 'dataMin'//关键设置:y轴最小值取数据最小值},series:[{name: 'Sales',type: 'line',data: [150,230,224,218,135,147,260]}] };```在这个例子中,y轴的最小值将是135(即数据中的最小值),而不是0。注意:如果数据是动态的,每次数据更新时,ECharts会自动重新计算dataMin并调整坐标轴。如果用户希望x轴也从最小值开始,那么xAxis同样可以设置min:'dataMin',但xAxis如果是类目轴(category),则min属性表示最小索引(从0开始),而不是类目值。如果是数值轴(value),则yAxis一样。因此,根据x轴的类型,设置方式不同。但用户问题只提到折线图的坐标轴起始值,且通常我们调整的是y轴,所以这里主要针对y轴。最后,提醒用户:如果数据的最小值比较大,比如1000,那么坐标轴从1000开始,这样图表就不会从0开始,可以更清晰地展示数据的变化。相关问题:1.如何设置ECharts折线图y轴的最大值为数据最大值?2.在ECharts中,如何同时调整x轴y轴的起始值?3.如果我想让坐标轴从最小值开始,但留出一定的空白,应该如何设置?</think>### 调整 ECharts 折线图坐标轴起始值为数据最小值的方法 在 ECharts 中,要使折线图的坐标轴(特别是 y 轴)起始值从数据的最小值开始,可通过以下配置实现: ```javascript option = { yAxis: { type: 'value', min: 'dataMin', // 关键配置:将最小值设为数据最小值 axisLabel: { formatter: '{value}' // 可选:自定义标签格式 } }, xAxis: { ... }, series: [{ type: 'line', data: [ /* 你的数据数组 */ ], // 可选:确保数据范围被完整显示 markPoint: { data: [{ type: 'min', name: '最小值' }] } }] }; ``` #### 关键参数说明: 1. **`min: 'dataMin'`** - 将 y 轴最小值设置为数据集中的最小值 - 等价于数值写法:`min: function(value) { return value.min }` 2. **动态数据场景** 当数据更新时,ECharts 会自动重新计算最小值: ```javascript myChart.setOption({ series: [{ data: newDataArray // 更新数据 }] }); ``` 3. **多系列处理** 若存在多个数据系列,`dataMin` 会自动取所有系列的最小值: ```javascript series: [ { data: [15, 22, 18], type: 'line' }, { data: [8, 12, 9], type: 'line' } // y轴将从8开始 ] ``` #### 示例效果: 假设数据为 `[23, 18, 24, 20]`: - 默认行为:y 轴从 0 开始 - **配置后**:y 轴从最小值 18 开始,更聚焦数据波动 > 注意事项:若数据全为正数且接近零,建议添加 `boundaryGap: [0.05, 0.05]` 避免数据点紧贴坐标轴边界[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值